home *** CD-ROM | disk | FTP | other *** search
/ 10,000 Great Games / 10,000 Great Games.iso / Product / 66 / data1.cab / Source_Files / Src / Effect.cpp < prev    next >
C/C++ Source or Header  |  2000-01-16  |  807b  |  40 lines

  1. #include "stdafx.h"
  2.  
  3. cEffect *effects = 0;
  4.  
  5. cEffect::cEffect(int _x, int _y, cProperties *_orig, char *sequence, int stay)
  6.         : cGameObject(_orig)
  7. {
  8.     add((cList **)&effects);
  9.  
  10.     set_sequence(sequence, FALSE);
  11.     
  12.     set_position(_x, _y);
  13.  
  14.     make_dirty();        
  15.     
  16.     set_soundsequence(sequence, FALSE);
  17.     
  18.     stay_on_screen = stay;
  19. }
  20.  
  21. int cEffect::control()
  22. {
  23.     cGameObject::control();
  24.  
  25.     if (animation_done())
  26.         set_image(0);
  27.     
  28.     else if (stay_on_screen && y2 < surface->start)
  29.         set_position(x, y + surface->start - y2);
  30.     
  31.     return (!sound_done() || !animation_done()) && (stay_on_screen || y_on_screen());
  32. }
  33.  
  34. void cEffect::make(int x, int y, cProperties *orig, char *sequence, int n, int dx, int dy)
  35. {
  36.     for (; n > 0; n--)
  37.         new cEffect(x + pmrnd(dx), y + pmrnd(dy), orig, sequence);
  38. }
  39.  
  40.